#ifndef FUNCTION
#define FUNCTION

struct dot {
    double x;
    double y;
};
struct dot_3{
    double x;
    double y;
    double z;
};
class Function {
public:
    virtual dot operator() (double x) const = 0;
    virtual dot derivative(double x) const = 0;
};
class Function_3 {
public:
    virtual dot_3 operator() (double x) const = 0;
    // virtual dot_3 derivative(double x) const = 0;
};

#endif